package com.youlai.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.system.common.request.LayoutSaveRequest;
import com.youlai.system.model.entity.LayoutConfig;

import java.util.List;

/**
* @author Guijiang.Lai
* @description 针对表【layout_config(甯冨眬閰嶇疆琛)】的数据库操作Service
* @createDate 2025-08-14 12:15:50
*/
public interface LayoutConfigService extends IService<LayoutConfig> {

    /**
     * 保存布局配置
     */
    LayoutConfig save(LayoutSaveRequest request);

    /**
     * 获取布局配置列表
     */
    List<LayoutConfig> getLayoutList(String pageName, String layoutName, Boolean isDefault);

    /**
     * 根据页面名称获取默认布局
     */
    LayoutConfig getDefaultLayoutByPage(String pageName);

    /**
     * 根据ID获取布局配置
     */
    LayoutConfig getLayoutById(Long id);

    /**
     * 更新布局配置
     */
    boolean updateLayout(Long id, LayoutSaveRequest request);

    /**
     * 删除布局配置
     */
    boolean deleteLayout(Long id);

    /**
     * 设置默认布局
     */
    boolean setDefaultLayout(Long id);

    /**
     * 获取当前用户ID
     */
    Long getCurrentUserId();

    /**
     * 获取当前用户名
     */
    String getCurrentUserName();

    /**
     * 取消指定页面的其他默认布局
     */
    void cancelOtherDefaultLayouts(String pageName, Long userId);
}
